Most internal combustion engines used in modern trucks and automobiles are controlled by a computerized engine controller. The engine controller typically controls a wide range of vehicle operating parameters including spark ting, throttle settings, and so on. Computerized engine controllers typically run software stored on a non-volatile memory, such as an E-PROM chip.
The software in a computerized engine controller can significantly affect the performance of the engine being controlled. Car enthusiasts have learned that the performance of certain engines can be significantly increased by making changes to the engine control software. Such performance increases are relatively easy to achieve, because they do not require making physical modifications to the engine itself. Furthermore, they are reversible.
Upgraded software may provide various benefits. For example, it may remove a speed limit imposed by a top speed governor, raise a limit imposed by a revolutions per minute limiter, or the like. Upgraded engine control software may accomplish other performance improvements by, for example, changing the engine control software to alter fuel enrichment, cam timing, ignition toning and other engine operating parameters.
For example, the performance of late model BMW cars (1996-present) can be improved by replacing the stock software of the engine controller with software which provides higher performance. Early attempts to provide upgraded engine control software typically involved physically removing (from the engine controller) a chip which contained stock software and replacing the chip with a new memory chip containing upgraded software. This is disadvantageous as it involves making physical modification to the engine controller, risks damaging the engine controller during the course of such modifications, and is not readily reversible.
One problem encountered in upgrading the engine control software for an engine is that, for any particular engine type, there are often a number of different versions or variants of the stock engine control software. Different versions may even be present in cars having the same model and year. For example, there are over seventeen different software versions for certain late model BMW cars.
Most late model cars include an onboard diagnostics (OBDII) port. Typically the OBDII port provides a data channel, which permits reprogramming of the engine controller. Vehicles equipped with an OBDII compliant engine controller typically lack easily removable and replaceable “chips”. Car dealers typically have diagnostic systems which permit new software to be loaded into the engine controller. Such diagnostic systems are generally too expensive to be practically purchased or used by an individual car owner.
There is a need for an efficient way to alter the software of a computerized engine controller.